// 示例 1：
// 输入：nums = [10, 9, 2, 5, 3, 7, 101, 18]
// 输出：4
// 解释：最长递增子序列是[2, 3, 7, 101]，因此长度为 4 。
// 示例 2：
// 输入：nums = [0, 1, 0, 3, 2, 3]
// 输出：4
// 示例 3：
// 输入：nums = [7, 7, 7, 7, 7, 7, 7]
// 输出：1

nums = [10, 9, 2, 5, 3, 7, 101, 18]

var lengthOfLIS = function (nums) {
    let len = nums.length;
    let dp = new Array(len).fill(1) // 表示以nums[i]为结尾的最长递增子序列长度
    for (let i = 1; i <= len; i++) {
        for (let j = 0; j < i; j++) {
            if (nums[i] > nums[j]) {
                dp[i] = Math.max(dp[i], dp[j] + 1);
            }
        }
    }
    return Math.max(...dp); // 取dp数组中的最大值，即为最长递增子序列的长度
};

console.log(lengthOfLIS(nums));
